import com.google.appengine.api.datastore.*
import static com.google.appengine.api.datastore.FetchOptions.Builder.*
import com.pobos.model.*


try {
	String idPregunta = params.id
	
	def respostas = obtenRespostas(idPregunta)
	if (respostas) {
		 amosaListaRespostas(respostas)
	} else {
		println "Non hai respostas."
	}
	
} catch (Exception e) { 
	request.erro = "Erro inesperado procurando as respostas."
	forward "/erro.gtpl"	
}

def obtenRespostas(String idPregunta) {
	
	def query = new Query("Resposta")
	query.addSort("dataCreacion", Query.SortDirection.DESCENDING)
	
	if (idPregunta) {
		query.addFilter("pregunta", Query.FilterOperator.EQUAL, Long.parseLong(idPregunta))
	}
	 
	PreparedQuery preparedQuery = datastore.prepare(query)
	 
	// return only the first 20 results
	def entities = preparedQuery.asList( withLimit(20) )
	
	return entities
	
}



def amosaListaRespostas(def respostas) {
	
	if (respostas) {
		html.div(id:"comments",style:'width:650px;') {
			
			h2("Respostas") {
				a class:"addcomment",href:"#respond", " - Envía a túa"
			}
			
			ul(class:'commentlist') {
			
				respostas.eachWithIndex {resposta,i->
					if (resposta) {
						
						def contido = resposta.contido.value
						contidoResume = contido[0..Math.min(contido.size() -1, 249)]
						                    
						if (contido.size() > 250) {
							contidoResume = contidoResume + "..."
						}
						
						li(class:'class') {
							
							span(class:'user') {
								a class:'url',href:"/perfil/${resposta.idPerfil}","${resposta.nomePerfil}"
							}
							span (class:'avatar') {
								if (resposta.idAvatar) {
									img (class:'avatar avatar-90 photo', width:'90', height:'90',
											src:"/verAvatar.groovy?id=${resposta.idPerfil}&w=90&h=90")  
								} else {
									img (class:'avatar avatar-90 photo', width:'90', height:'90',
											src:"/images/default_profile.png")  
								}
							}
							
							div(class:'commentmetadata'){
								span "${resposta.dataCreacion.format('dd/MM/yyyy HH:mm')}"
							}
							div(class:'commenttext'){
								p "${contidoResume}" 
							}
							div(class:'clr')
						}
						
					}
				} //fin each
				
			}
		}
	
	}
	
}

